package demo1;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Demo {
    public static void main(String[] args) throws Exception {
        //传统调用方式硬编写效率高直接，缺点写死了，不利于后期维护
        User user = new User();
        user.sayHello();
        //反射机制：非常灵活，效率差，编写量大，代码可读性差
        Class cls=Class.forName("demo1.User");
        User user1=(User)cls.newInstance();
        user1.sayHello();
        //spring容器
        //Spring容器来管理项目中的类避免了大量的反射代码，还提供了IOC，AOP等功能，更加灵活
        //可以创容器时指定包名，然后就能管理其中被注解的类
        AnnotationConfigApplicationContext context=new AnnotationConfigApplicationContext("demo1");
        User user2=context.getBean(User.class);
        user2.sayHello();
    }
}
